Amazon SNS
Amazon Simple Notification Service (SNS)
Amazon Simple Notification Service (SNS) は、マイクロサービス、分散型システム、およびサーバーレスアプリケーションの分離を可能にする、高可用性で、耐久性に優れたセキュアな完全マネージド型 pub/sub メッセージングサービスです。
SNS -> Slack
SNS -> Lambda -> Slack を設定する。
Slack の設定
2. アプリケーションの種別は Incoming Webhooks とし、Webhook を Workspace に追加する
3. WebHook の URL を記録しておく
Lambda の作成
1. Lambda を 1 から作成
ロールは lambda_basic_execution
2. コードを書いてアップロード
Node.js に含まれる http は低レベルな API なので、大人しく request を使うのが楽そう。ローカルでモジュールは npm install request あたりでインストールしておき、zip で固めてアップロードする。
また、webhook の URL を HOOK_URL に設定しておく。
テストしたい場合は、Lambda のテストのイベントテンプレートに Amazon SNS Topic Notification があるので、そちらを利用すると良い。
code:javascript
const request = require('request');
exports.handler = async (event, context) => {
const params = {
uri: process.env.HOOK_URL,
headers: {
'Content-Type': 'application/json'
},
json: true,
body: {
'text': event.Records0.Sns.Message }
};
return await new Promise((resolve, reject) => {
request.post(params, (err, res) => {
if (err) {
reject(err);
}
resolve(res);
});
});
};
SNS の設定
1. トピックを作成する
トピック名、表示名 を入力
2. サブスクリプションを作成する
プロトコル: AWS Lambda
エンドポイント: 作成した Lambda
バージョン: default
3. テスト
トピックに発行 からメッセージを送信できる